package com.lingshu.app.service;

import com.lingshu.app.model.ReturnObject;
import com.lingshu.app.model.register.RegisterResponse;
import com.lingshu.app.model.report.BreastReportSaveRequest;
import com.lingshu.app.model.report.BreastReportSaveResponse;
import com.lingshu.app.model.report.CarotidReportSaveRequest;
import com.lingshu.app.model.report.CarotidReportSaveResponse;
import com.lingshu.app.model.report.ReportAuditRequest;
import com.lingshu.app.model.report.ThyroidReportSaveRequest;
import com.lingshu.app.model.report.ThyroidReportSaveResponse;
import com.lingshu.app.model.structure.BreastStructureData;
import com.lingshu.app.model.structure.CarotidStructureData;
import com.lingshu.app.model.structure.ThyroidStructureData;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @author 于定金
 * @version 1.0
 * @Date 2023/12/28 15:28
 * @Description
 */
public interface ReportService {
    /**
     * 获取乳腺报告数据
     *
     * @param model
     * @return
     */
    @POST("api/report/breast/detail")
    Observable<ReturnObject<BreastStructureData>> getBreastReport(@Body RegisterResponse model);

    /**
     * 获取颈动脉报告数据
     *
     * @param model
     * @return
     */
    @POST("api/report/carotid/detail")
    Observable<ReturnObject<CarotidStructureData>> getCarotidReport(@Body RegisterResponse model);

    /**
     * 获取甲状腺报告数据
     *
     * @param model
     * @return
     */
    @POST("api/report/thyroid/detail")
    Observable<ReturnObject<ThyroidStructureData>> getThyroidReport(@Body RegisterResponse model);

    /**
     * 保存乳腺报告
     *
     * @param model
     * @return
     */
    @POST("api/report/breast/save")
    Observable<ReturnObject<BreastReportSaveResponse>> saveBreastReport(@Body BreastReportSaveRequest model);

    /**
     * 保存颈动脉报告
     *
     * @param model
     * @return
     */
    @POST("api/report/carotid/save")
    Observable<ReturnObject<CarotidReportSaveResponse>> saveCarotidReport(@Body CarotidReportSaveRequest model);

    /**
     * 保存颈动脉报告
     *
     * @param model
     * @return
     */
    @POST("api/report/thyroid/save")
    Observable<ReturnObject<ThyroidReportSaveResponse>> saveThyroidReport(@Body ThyroidReportSaveRequest model);

    /**
     * 审核报告
     * @param model
     * @return
     */
    @POST("api/report/audit")
    Observable<ReturnObject<RegisterResponse>> auditReport(@Body ReportAuditRequest model);

    /**
     * 撤销报告
     * @param reportId
     * @return
     */
    @POST("api/report/cancel")
    Observable<ReturnObject<Boolean>> cancelReport(@Query("reportId")Long reportId);

    /**
     * 删除报告
     * @param reportId
     * @return
     */
    @POST("api/report/delete")
    Observable<ReturnObject<Boolean>> deleteReport(@Query("reportId")Long reportId);
}
